Page({
  data: {
    index:1,
    upShow:false,
    downShow:false,
    selectedSize:"small",
    imageIndex:0,
    maxImageCount:5,
    showIndex: 10,

    imageList:[],
    imageUrlList:[],
    imageUrl:"https://636c-cloud1-7g01br1f58442f50-1323588102.tcb.qcloud.la/functionIcon/icon_upload.png?sign=8c93e82d66c24aa4f6e8952bad39b048&t=1705116907",
    // 用来设置快递数量
    DeliveryNum: [1,2,3,4,5,6,7,8,9],DeliveryNumIndex: 0,
    // 快递重量
    DeliveryWeight:["轻","一般","重"],DeliveryWeightIndex:0,
    // 性别限制
    sexDemand: ["不限","男","女"],sexDemandIndex:0,
    // 送达日期
    dateDay:["今天","明天","后天"],dateDayIndex:0,
    // 后期 通过接口，从后端获取到大学名称，然后赋值到这列表
    universityList:["桂林航天工业学院","桂林电子科技大学"],universityListIndex:0,

    addressHome:{},//起始地址对象
    addressGo:{},//终点地址对象
    urlArray: [],
    task:{
      taskCategoryId:"",//onLoad中设置√
      taskTitle:"",//用户输入的备注√
      taskDescription:"",//用户输入的取件信息√
      taskHomeaddressId :"",//取件地址ID √
      taskGoaddressId:"",//收件地址ID √
      taskDeadlineTime:"",//截至时间
      taskSexdemand:"",//性别要求 √
      taskImageurl:"",//上传的图片URL  chooseImage
      taskGoodsNum:"",//物品数量 √
      taskSize:"",//物品体积 √
      taskReward:"2",
      taskDeadlineTime:"",
    },
    taskCode:"",
    calculatedPrice:"2"
  },
  //获取备注
  remarkInputChange(e){
    // 获取输入框的值并更新到data中
    this.setData({
      'task.taskTitle': e.detail.value
    });
  },
  //获取描述
  textareaChange(e){
    // 获取输入框的值并更新到data中
    this.setData({
      'task.taskDescription': e.detail.value
    });
  },
  // 快递尺寸选择
  onButtonClick: function (e) {
    // const newSize = e.currentTarget.dataset.size;
    // console.log("获取到的尺寸为："+newSize)
    // this.setData({
    //   selectedSize: newSize
    // });
    const size = e.currentTarget.dataset.size;
    this.setData({
      selectedSize: size
    }, () => {
      this.calculatePrice();
    });
  },
  //地址选择函数，跳转到地址选择界面
  addressChoose(e){
    //1.跳转到地址选择界面
    const id = e.currentTarget.dataset.index;
    wx.navigateTo({
      url: '/pages/addressManage/addressChoose/addressChoose?id='+id,
    })
  },
  // 快递 图片信息上传
  chooseImage: function () {
    if (this.data.imageList.length >= this.data.maxImageCount) {
      wx.showToast({
        title: '不能上传更多图片了',
        icon: 'none'
      });
      return;
    }

    wx.chooseMedia({
      count: 6,  // 选择图片的数量，这里设置为6
      mediaType:'mix',
      maxDuration: 30,
      sizeType: ['original', 'compressed'],  // 原图或压缩图
      sourceType: ['album', 'camera'],  // 从相册或相机选择
      camera:['camera','front'],
      success: (res) => {
        const newMedia = {
          tempFilePath: res.tempFiles[0].tempFilePath
        };
        // 此处可以获取到信息
        console.log("路径为:"+newMedia.tempFilePath);
        //发送请求到后端，然后返回URL
        const app = getApp();
        const globalUrl = app.globalData.globalUrl;
        const userInfo = wx.getStorageSync('UserData');
        wx.uploadFile({
          url: globalUrl+'/fileoss/upload', 
          filePath: newMedia.tempFilePath,
          name: 'file',
          method: 'POST',
          header: {
            "token": userInfo.token
          },
          success: (res) => {
            console.log('上传成功', res.data);
            var backendUrl = res.data; // 假设 res.data 是后端返回的URL
            this.data.urlArray.push(backendUrl);
            //console.log(this.data.urlArray);
          },
          fail: function (err) {
            console.log('上传失败', err);
          }
        });
        this.setData({
          imageList: this.data.imageList.concat(newMedia),
          imageIndex: this.data.imageIndex +1
        });
      }
    });
  },
  // 点击指定图片 完成预览
  previewImage: function (e) {
    // 自定义元素获取信息,获取当前点击的位置的控件的src的路径值
    const currentImage = e.currentTarget.dataset.src;
    //通过获取到的路径值,实现图片预览
    wx.previewImage({
      current: currentImage,
      urls: this.data.imageList.map(media => media.tempFilePath)
    });
  },
  //底部弹出 快递数量 选择器
  bindDeliveryPickerChange: function (e) {
    console.log(e);
    console.log('picker发送选择改变，携带值为', e.detail.value)
    this.setData({
      DeliveryNumIndex: e.detail.value
    })
  },
  //底部弹出 快递重量 选择器
  bindDeliveryWeightPickerChange: function (e) {
    console.log(e);
    console.log('picker发送选择改变，携带值为', e.detail.value)
    this.setData({
      DeliveryWeightIndex: e.detail.value
    })
  },
  //底部弹出 送达日期 选择器
  bindDateDayPickerChange: function (e) {
    console.log(e);
    console.log('picker发送选择改变，携带值为', e.detail.value)
    this.setData({
      dateDayIndex: e.detail.value
    }, () => {
      this.updateSelectedDate();
    });
  },
  updateSelectedDate: function() {
    const index = this.data.dateDayIndex;
    const today = new Date();
    let selectedDate;

    switch (index) {
      case '1': // 明天
        selectedDate = new Date(today.getTime() + 24 * 60 * 60 * 1000);
        console.log("明天",selectedDate)
        break;
      case '2': // 后天
        selectedDate = new Date(today.getTime() + 2 * 24 * 60 * 60 * 1000);
        console.log("后天",selectedDate)
        break;
      case '0': // 今天
      default:
        selectedDate = today;
        console.log("今天",selectedDate)
        break;
    }
    this.setData({
      selectedDate: this.formatDate(selectedDate),
      // "task.taskDeadlineTime":this.formatDate(selectedDate),
    });
    console.log("hah",this.data.selectedDate)
  },
  formatDate: function(date) {
    const year = date.getFullYear();
    const month = date.getMonth() + 1; // 月份从0开始，需要加1
    const day = date.getDate();
    return `${year}-${month < 10 ? '0' + month : month}-${day < 10 ? '0' + day : day}`;
  },







  // 底部弹出 时间显示
  bindTimePickerChange(e){
    console.log(e);
    console.log('picker发送选择改变，携带值为', e.detail.value)
    this.setData({
      startTime: e.detail.value
    })
  },
  //底部弹出 性别要求 选择器
  bindSexDemandPickerChange: function (e) {
    console.log(e);
    console.log('picker发送选择改变，携带值为', e.detail.value)
    this.setData({
      sexDemandIndex: e.detail.value
    })
  },
  // 界面跳转提示
  changePage(){
    wx.showToast({
      title: '跳转界面',
      icon: 'success',
      duration: 2000
    }) 
  },

  // 系统函数
    /**
   * 生命周期函数--监听页面加载
   */
  onLoad(options) {
    // 获取到home界面传递过来的ID值
    const id = options.id;
    console.log(`接收到的 id 参数为: ${id}`);

    // 日期获取，进行显示
    const currentDate = new Date();
    const hours = currentDate.getHours();
    const minutes = currentDate.getMinutes();
    
    // 格式化成 HH:mm 格式
    const formattedTime = `${hours < 10 ? '0' : ''}${hours}:${minutes < 10 ? '0' : ''}${minutes}`;
    console.log(formattedTime);
    this.setData({
        "startTime":formattedTime,
        'task.taskCategoryId': id
    })

  },
  onShow: function(){
    console.log("返回的数据")
    const addressHome = wx.getStorageSync("addressidHome");//获取起始地址
    const addressGo = wx.getStorageSync("addressidGo");//获取终点地址
    console.log("起始地址ID为：",addressHome)
    console.log("终点地址ID为：",addressGo)
    this.setData({
      addressHome:addressHome,
      addressGo:addressGo
    })
  },





  //创建任务
  createTask(){
    // 获取小程序实例
    const app = getApp();
    // 获取全局变量
    const globalUrl = app.globalData.globalUrl;
    const userInfo = wx.getStorageSync('UserData');

    if(!this.data.task.taskDescription || this.data.task.taskDescription === ''){
      wx.showToast({
        title: '描述信息为空',
        icon: 'none'
      })
      return;
    }
    if(!this.data.urlArray || JSON.stringify(this.data.urlArray) === '[]'){
      wx.showToast({
        title: '请选择图片后再发布',
        icon: 'none'
      })
      return;
    }    
    if(!this.data.addressHome || this.data.addressHome.addressId === ''){
      wx.showToast({
        title: '起始地址为空',
        icon: 'none'
      })
      return;
    }
    if(!this.data.addressGo.addressId || this.data.addressGo.addressId === ''){
      wx.showToast({
        title: '终点地址为空',
        icon: 'none'
      })
      return;
    }

    //赋值开始
    this.setData({
      'task.taskHomeaddressId': this.data.addressHome.addressId,
      'task.taskGoaddressId': this.data.addressGo.addressId,
      'task.taskSexdemand': this.data.sexDemand[this.data.sexDemandIndex],
      'task.taskGoodsNum': this.data.DeliveryNum[this.data.DeliveryNumIndex],
      'task.taskSize': this.data.selectedSize,
      'task.taskImageurl':JSON.stringify(this.data.urlArray),
      "task.taskDeadlineTime":this.data.selectedDate,
    })
    console.log("封装后的task:",this.data.task)

    const tasks = JSON.stringify(this.data.task);
    console.log("输入的内容为：",tasks)
    wx.request({
      url: globalUrl+'/user/task/insert',
      method: 'POST',
      header: {
        "token": userInfo.token,
        "isPublish":1//设置为发布，当为0的时候，为草稿
      },
      data: tasks,
      success: (response) => {
        if(response.data.code === 200){ //成功添加地址列表到数据库
          console.log("获取到的任务编号：",response.data.data);
          
          this.setData({
            "taskCode":response.data.data,
          })
          this.getTaskByCode();
        }else if(response.data.code === 401){
          wx.showToast({
            title: '您还没有登录，请先登录',
            icon: 'none'
          })
        }else if(response.data.code === 402){
          wx.showToast({
            title: '请选择所属学校',
            icon: 'none'
          })
        }else{
          wx.showToast({
            title: '您的网络有差异请稍后尝试！',
            icon: 'none'
          })
        }
      },
    });
  },
  getTaskByCode(){
    // 获取小程序实例
    const app = getApp();
    // 获取全局变量
    const globalUrl = app.globalData.globalUrl;
    const userInfo = wx.getStorageSync('UserData');
    wx.request({
      url: globalUrl+'/user/task/getTaskById',
      method: 'GET',
      header: {
        "token": userInfo.token,
        "taskCode": this.data.taskCode
      },
      success: (response) => {
        if(response.data.code === 200){ //成功添加地址列表到数据库
          console.log("获取到的任务数据为：",response.data.data)
          wx.setStorageSync('taskCode', response.data.data)
          //此时订单为未付款界面，
          wx.showToast({
            title: '正在跳转支付',
            icon: 'loading',
            success: function() {
              setTimeout(function() {
                wx.navigateTo({
                  url: '/pages/pay/payMethod/payMethod',
                })
              }, 500)
            }
          });      
        }else if(response.data.code === 401){
          wx.showToast({
            title: '您还没有登录，请先登录',
            icon: 'none'
          })
        }else{
          wx.showToast({
            title: '您的网络有差异请稍后尝试！',
            icon: 'none'
          })
        }
      },
    });


  },
  calculatePrice: function() {
    let price = 0;
    switch (this.data.selectedSize) {
      case 'small':
        price = 2;
        break;
      case 'medium':
        price = 4;
        break;
      case 'large':
        price = 6;
        break;
    }
    this.setData({
      "task.taskReward": price
    });
  },

});
